The present invention generally relates to the field of computer software, and more specifically, to Web-based applications.
An application programming interface (API) allows programmatic access to the facilities of an application, such as the data that the application manages and the operations provided by the application. Such programmatic access allows interaction with the application, such as retrieving and updating application content, through program code. This access through an API is typically exposed to other applications, which can be either remotely or locally situated with respect to the application itself. In addition, an API can often be accessed by a user through a suitable user interface for the application itself or from a client application, such as a browser. Thus, for example, if a first application exposes its operations through an API, then not only can a user manually interact with the first application through its user interface, but a second application can also interact with it programmatically using its API.
Existing systems, however, require developers to manually design and code the API for the application operations that they choose to expose. This approach has a number of shortcomings. First, it requires the developers to invest initial time and effort to provide the API, an investment that could have been better spent in some more substantive and creative area of development. Second, when the operations of the application change, the manual API generation approach requires subsequent effort to reflect these changes in the API, thus requiring ongoing effort on the part of the developers, or in some cases restricts the functionality changes that can be made in order to ensure compatibility.
From the above, there is a need for a system and method to automatically provide an application with an API.